#include<iostream>
#include<string>

bool repeatedSubstringPattern(std::string s)
{
    std::string ss = s + s;
    ss.erase(0, 1);
    ss.erase(ss.size() - 1, 1);
    if (ss.find(s) != std::string::npos)//未找到的话会返回std::string::npos。
    {                                   //这个值通常是一个非常大的无符号整数，表示没有找到匹配的子字符串。
        return true;
    }
    return false;

   /* int pos = ss.find(s);//转为int 未找到返回-1
    if (pos != -1)
    {
        return true;
    }
    return false;*/
}

bool repeatedSubstringPattern2(std::string s)
{
    int pos = (s + s).find(s, 1);//若无子串能构成s，则pos一定 == s.size()  则 == s.size() 返回false
    return pos != s.size(); 
}

int main()
{ 
    std::string s = "abcabcabcabc";
    std::string s1 = "abcd";
    bool match = repeatedSubstringPattern(s);
    std::cout << match << '\n';

    bool match1= repeatedSubstringPattern2(s1);
    std::cout << match1 << '\n';

	return 0;
}